package com.samehope.ar.service;

import com.samehope.ar.dto.ItemAddParam;
import com.samehope.ar.dto.ItemUpdateParam;
import com.samehope.ar.entity.PatrolItem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.samehope.ar.vo.FormSelectVO;
import com.samehope.ar.vo.ItemDetailVO;
import com.samehope.ar.vo.TreeDataVO;

import java.util.List;

/**
 * <p>
 * 巡检项 服务类
 * </p>
 *
 * @author Zhang Luo
 * @since 2019-12-23
 */
public interface IPatrolItemService extends IService<PatrolItem> {

    /**
     * 根据巡检项分类查询巡检项
     * @param itemTypeId
     * @return
     */
    List<PatrolItem> findByItemType(Long itemTypeId);

    /**
     * 添加检查项
     * @param param
     */
    Long add(ItemAddParam param);

    /**
     * 获取巡检项视图对象
     * @param itemId
     * @return
     */
    ItemDetailVO itemDetail(Long itemId);

    /**
     * 删除巡检项
     * @param itemId
     */
    void deleteItem(Long itemId);

    /**
     * 更新巡检项
     * @param param
     */
    void updateItem(ItemUpdateParam param);

    /**
     * 查询巡检项树结构
     * @param condition
     * @return
     */
    List<TreeDataVO> getItemTree(String condition);

    /**
     * 巡检项下拉菜单接口
     * @return
     */
    List<FormSelectVO> itemsForSelect();

    /**
     * 根据点位查询巡检项树结构
     * @param pointId
     * @return
     */
    List<TreeDataVO> getItemTreeByPointId(Long pointId);
}
